package com.smart_campus.sys.mapper;

import com.smart_campus.sys.common.Constant;
import com.smart_campus.sys.domain.Menu;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

/**
 * @author Alfred
 * @date 2020/6/8 19:54
 */
@Repository
@Transactional
public interface MenuMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Menu record);

    int insertSelective(Menu record);

    Menu selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Menu record);

    int updateByPrimaryKey(Menu record);

    List<Menu> queryAllMenuForList(@Param("map") Map<String,Object> map);

    List<Menu> queryAllMenu (Menu menu);

    /**
     * 查询最大的排序码
     * @return
     */
    Integer queryMenuMaxOrderNum();

    Menu getMenuById(Integer id);

    Integer queryMenuChildrenCountById(Integer id);

    /**
     * 根据用户id查询角色id集合
     * @param userId
     * @return
     */
    List<Integer> queryRoleIdsByUserId(Integer userId);

    /**
     *根据角色ID的集合，查询菜单的ID的集合
     * @param roleIds
     * @return
     */
    List<Integer> queryMenuIdsByRids(@Param("roleIds") List<Integer> roleIds);


    List<Menu> queryMenuForListUserById(@Param("map") Map<String,Object> map,@Param("menuIds")List<Integer> menuIds);

    List<Menu> selectLists(Menu menu,@Param("menuIds")List<Integer> menuIds);
}